package AnalizadorSintactico;

import AnalizadorLexico.CategoriaLexica;
import AnalizadorLexico.Lexema;

/**
 * @author esteban
 * @author Juan Pablo
 */
public class UtilidadesSintactico implements PalabraReservada, CategoriaLexica {
	/**
	 * identifica la palabra reservada de un lexema
	 *
	 * @param fila
	 * @return
	 */
	static boolean esPalabraReservada(Lexema fila) {
		String lexema = fila.getLexema();
		if (!(fila.getTipo().equals(IDENTIFICADOR))) {
			return false;
		}
		if (lexema.equals(BOOL)) {
			return true;
		}
		if (lexema.equals(IMPORT)) {
			return true;
		}
		if (lexema.equals(DOUBLE)) {
			return true;
		}
		if (lexema.equals(STRING)) {
			return true;
		}
		if (lexema.equals(INT)) {
			return true;
		}
		if (lexema.equals(BREAK)) {
			return true;
		}
		if (lexema.equals(CASE)) {
			return true;
		}
		if (lexema.equals(TRY)) {
			return true;
		}
		if (lexema.equals(CATCH)) {
			return true;
		}
		if (lexema.equals(FINALLY)) {
			return true;
		}
		if (lexema.equals(CONTINUE)) {
			return true;
		}
		if (lexema.equals(ELSE)) {
			return true;
		}
		if (lexema.equals(NEW)) {
			return true;
		}
		if (lexema.equals(INTERFACE)) {
			return true;
		}
		if (lexema.equals(CLASS)) {
			return true;
		}
		if (lexema.equals(PACKAGE)) {
			return true;
		}
		if (lexema.equals(PRIVATE)) {
			return true;
		}
		if (lexema.equals(PROTECTED)) {
			return true;
		}
		if (lexema.equals(PUBLIC)) {
			return true;
		}
		if (lexema.equals(RETURN)) {
			return true;
		}
		if (lexema.equals(STATIC)) {
			return true;
		}
		if (lexema.equals(SWITCH)) {
			return true;
		}
		if (lexema.equals(FOR)) {
			return true;
		}
		if (lexema.equals(UNTIL)) {
			return true;
		}
		if (lexema.equals(WHILE)) {
			return true;
		}
		if (lexema.equals(IF)) {
			return true;
		}
		if (lexema.equals(ELSE)) {
			return true;
		}
		if (lexema.equals(NULL)) {
			return true;
		}
		if (lexema.equals(CASE)) {
			return true;
		}
		if (lexema.equals(TRUE)) {
			return true;
		}
		if (lexema.equals(FALSE)) {
			return true;
		}
		if (lexema.equals(DO)) {
			return true;
		}
		if (lexema.equals(VOID)) {
			return true;
		}
		if (lexema.equals(IMPLEMENTS)) {
			return true;
		}
		if (lexema.equals(EXTENDS)) {
			return true;
		}
		if (lexema.equals(ENDIF)) {
			return true;
		}
		if (lexema.equals(ENDWHILE)) {
			return true;
		}
		if (lexema.equals(ENDFOR)) {
			return true;
		}
		if (lexema.equals(ENDSWITCH)) {
			return true;
		}
		if (lexema.equals(FATHER)) {
			return true;
		}
		if (lexema.equals(FIELDSBLOCK)) {
			return true;
		}
		if (lexema.equals(ENDFIELDSBLOCK)) {
			return true;
		}
		if (lexema.equals(METHODSBLOCK)) {
			return true;
		}
		if (lexema.equals(ENDMETHODSBLOCK)) {
			return true;
		}
		if (lexema.equals(ENDMETHOD)) {
			return true;
		}
		if (lexema.equals(ENDCLASS)) {
			return true;
		}
		if (lexema.equals(ENDINTERFACE)) {
			return true;
		}
		if (lexema.equals(THIS)) {
			return true;
		}
		if (lexema.equals(START)) {
			return true;
		}
		if (lexema.equals(READ)) {
			return true;
		}
		if (lexema.equals(WRITE)) {
			return true;
		}
		if (lexema.equals(ENDTRY)) {
			return true;
		}
		return false;
	}
}
